<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ErlangTypes (infer.ErlangFrontend.ErlangTypes)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../odoc.support/odoc.css"/><meta name="generator" content="odoc 2.4.3"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../odoc.support/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ErlangFrontend</a> &#x00BB; ErlangTypes</nav><header class="odoc-preamble"><h1>Module <code><span>ErlangFrontend.ErlangTypes</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value anchored" id="val-type_condition"><a href="#val-type_condition" class="anchor"></a><code><span><span class="keyword">val</span> type_condition : 
  <span><span><span>(<span><a href="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a> <a href="../ErlangEnvironment/index.html#type-present">ErlangEnvironment.present</a></span>, <span class="type-var">'a</span>)</span> <a href="../ErlangEnvironment/index.html#type-t">ErlangEnvironment.t</a></span> <span class="arrow">&#45;&gt;</span></span>
  <span><span><a href="../ErlangAst/index.html#type-type_">ErlangAst.type_</a> <a href="../../IStdlib/IString/Map/index.html#type-t">IStdlib.IString.Map.t</a></span> <span class="arrow">&#45;&gt;</span></span>
  <span><span>(<a href="../../IR/Ident/index.html#type-t">IR.Ident.t</a> * <a href="../ErlangAst/index.html#type-type_">ErlangAst.type_</a>)</span> <span class="arrow">&#45;&gt;</span></span>
  <a href="../ErlangBlock/index.html#type-t">ErlangBlock.t</a> * <a href="../../IR/Exp/index.html#type-t">IR.Exp.t</a></span></code></div><div class="spec-doc"><p>Given an argument, its type (and a list of constraints), returns a condition that is true if the arguments has the specified type. Also returns a block for intermediate computations.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-prune_spec_args"><a href="#val-prune_spec_args" class="anchor"></a><code><span><span class="keyword">val</span> prune_spec_args : 
  <span><span><span>(<span><a href="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a> <a href="../ErlangEnvironment/index.html#type-present">ErlangEnvironment.present</a></span>, <span class="type-var">_</span>)</span> <a href="../ErlangEnvironment/index.html#type-t">ErlangEnvironment.t</a></span> <span class="arrow">&#45;&gt;</span></span>
  <span><span><a href="../../IR/Ident/index.html#type-t">IR.Ident.t</a> list</span> <span class="arrow">&#45;&gt;</span></span>
  <span><a href="../ErlangAst/index.html#type-spec">ErlangAst.spec</a> <span class="arrow">&#45;&gt;</span></span>
  <a href="../ErlangBlock/index.html#type-t">ErlangBlock.t</a></span></code></div><div class="spec-doc"><p>Given a function spec and a list of identifiers corresponding to function arguments, returns a block that prunes based on the types of the arguments. The assumptions lead to <code>exit_success</code>, while the negation of the assumptions leads to <code>exit_failure</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-prune_spec_return"><a href="#val-prune_spec_return" class="anchor"></a><code><span><span class="keyword">val</span> prune_spec_return : 
  <span><span><span>(<span><a href="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a> <a href="../ErlangEnvironment/index.html#type-present">ErlangEnvironment.present</a></span>, <span class="type-var">_</span>)</span> <a href="../ErlangEnvironment/index.html#type-t">ErlangEnvironment.t</a></span> <span class="arrow">&#45;&gt;</span></span>
  <span><a href="../../IR/Ident/index.html#type-t">IR.Ident.t</a> <span class="arrow">&#45;&gt;</span></span>
  <span><a href="../ErlangAst/index.html#type-spec">ErlangAst.spec</a> <span class="arrow">&#45;&gt;</span></span>
  <a href="../ErlangBlock/index.html#type-t">ErlangBlock.t</a></span></code></div><div class="spec-doc"><p>Similar to <code>prune_spec_args</code>, except that instead of a list of identifiers for arguments we get one identifier for the return.</p></div></div></div></body></html>
